package br.com.dp.dao.entidade;

import java.io.Serializable;
import javax.persistence.*;
import java.util.List;


/**
 * The persistent class for the quarto database table.
 * 
 */
@Entity
@Table(name="quarto")
@NamedQuery(name="Quarto.findAll", query="SELECT q FROM Quarto q")
public class Quarto implements Serializable {
	private static final long serialVersionUID = 1L;

	@Id
	@Column(unique=true, nullable=false)
	private int id;

	private byte camaExtra;

	@Column(nullable=false)
	private byte isPoliticaFumante;

	@Column(nullable=false, length=45)
	private String totalQuartos;

	//bi-directional many-to-one association to Dia
	@OneToMany(mappedBy="quarto")
	private List<Dia> dias;

	//bi-directional many-to-one association to Disponibilidade
	@OneToMany(mappedBy="quarto")
	private List<Disponibilidade> disponibilidades;

	//bi-directional many-to-one association to FotoQuarto
	@OneToMany(mappedBy="quarto")
	private List<FotoQuarto> fotoQuartos;

	//bi-directional many-to-one association to Hotel
	@ManyToOne
	@JoinColumn(name="idHotel", nullable=false)
	private Hotel hotel;

	//bi-directional many-to-many association to TipoQuarto
	@ManyToMany(mappedBy="quartos")
	private List<TipoQuarto> tipoQuartos;

	public Quarto() {
	}

	public int getId() {
		return this.id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public byte getCamaExtra() {
		return this.camaExtra;
	}

	public void setCamaExtra(byte camaExtra) {
		this.camaExtra = camaExtra;
	}

	public byte getIsPoliticaFumante() {
		return this.isPoliticaFumante;
	}

	public void setIsPoliticaFumante(byte isPoliticaFumante) {
		this.isPoliticaFumante = isPoliticaFumante;
	}

	public String getTotalQuartos() {
		return this.totalQuartos;
	}

	public void setTotalQuartos(String totalQuartos) {
		this.totalQuartos = totalQuartos;
	}

	public List<Dia> getDias() {
		return this.dias;
	}

	public void setDias(List<Dia> dias) {
		this.dias = dias;
	}

	public Dia addDia(Dia dia) {
		getDias().add(dia);
		dia.setQuarto(this);

		return dia;
	}

	public Dia removeDia(Dia dia) {
		getDias().remove(dia);
		dia.setQuarto(null);

		return dia;
	}

	public List<Disponibilidade> getDisponibilidades() {
		return this.disponibilidades;
	}

	public void setDisponibilidades(List<Disponibilidade> disponibilidades) {
		this.disponibilidades = disponibilidades;
	}

	public Disponibilidade addDisponibilidade(Disponibilidade disponibilidade) {
		getDisponibilidades().add(disponibilidade);
		disponibilidade.setQuarto(this);

		return disponibilidade;
	}

	public Disponibilidade removeDisponibilidade(Disponibilidade disponibilidade) {
		getDisponibilidades().remove(disponibilidade);
		disponibilidade.setQuarto(null);

		return disponibilidade;
	}

	public List<FotoQuarto> getFotoQuartos() {
		return this.fotoQuartos;
	}

	public void setFotoQuartos(List<FotoQuarto> fotoQuartos) {
		this.fotoQuartos = fotoQuartos;
	}

	public FotoQuarto addFotoQuarto(FotoQuarto fotoQuarto) {
		getFotoQuartos().add(fotoQuarto);
		fotoQuarto.setQuarto(this);

		return fotoQuarto;
	}

	public FotoQuarto removeFotoQuarto(FotoQuarto fotoQuarto) {
		getFotoQuartos().remove(fotoQuarto);
		fotoQuarto.setQuarto(null);

		return fotoQuarto;
	}

	public Hotel getHotel() {
		return this.hotel;
	}

	public void setHotel(Hotel hotel) {
		this.hotel = hotel;
	}

	public List<TipoQuarto> getTipoQuartos() {
		return this.tipoQuartos;
	}

	public void setTipoQuartos(List<TipoQuarto> tipoQuartos) {
		this.tipoQuartos = tipoQuartos;
	}

}